package com.isc.tcpCommunication01;

import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * 1.编写一个服务器端和客户端
 * 2.服务器端在9999端口监听
 * 3.客户端连接到服务器端，发送"hello,server",然后退出
 * 4.服务器端接收到客户端发送的信息，输出，并退出
 */
public class Server {
    public static void main(String[] args) throws IOException {
        //服务器监听9999端口
        ServerSocket serverSocket = new ServerSocket(9999);
        System.out.println("服务器正在监听9999端口...");

        //建立连接
        //serverSocket 可以通过accept()返回多个Socket(多个客户端连接服务器的并发)
        Socket accept = serverSocket.accept();//已连接套接字

        //使用已连接套接字读取客户端输入流中的数据
        InputStream inputStream = accept.getInputStream();
        byte[] buf = new byte[1024];
        int readLength = 0;
        while ((readLength = inputStream.read(buf)) != -1) {
            System.out.println("客户端发送的数据是:"+new String(buf,0,readLength));
        }
        System.out.println("读取完毕...");

        //关闭资源
        inputStream.close();
        accept.close();
        serverSocket.close();
        System.out.println("服务器断开连接...");
    }
}
